#pragma once



#include <iostream>


#define Die(code)   \
    do              \
    {               \
        exit(code); \
    } while (0)

#define CONV(v) (struct sockaddr *)(v)

enum 
{
    USAGE_ERR = 1,
    SOCKET_ERR,
    BIND_ERR,
    LISTEN_ERR
};

const int gdefaultsockfd = -1;
const int gbacklog = 8;

// bool ParseOneLine(std::string& str,std::string& out,const std::string& sep)
// {
//     if(str.size()<3)
//         return false;
//     auto pos = str.find(sep);
//     if(pos == std::string::npos)
//         return false;
//     out = str.substr(0,pos);
//     str.erase(0,pos + sep.size());
//     return true;
// }
// //解析 key value字符串
// bool SplitString(const std::string& header,const std::string& sep,std::string& key,std::string& value)
// {
//     auto pos = header.find(sep);
//     if(pos == std::string::npos)
//         return false;
//     key = header.substr(0,pos);
//     value = header.substr(pos+sep.size());
//     return true;
// }